home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr26
/
netprog.zip
/
NETPROG.TAR
/
ipc
/
sub_mesgmsgq.c
< prev
next >
Wrap
C/C++ Source or Header
|
1989-12-17
|
1KB
|
47 lines
#include "mesg.h"
/*
* Send a message using the System V message queues.
* The mesg_len, mesg_type and mesg_data fields must be filled
* in by the caller.
*/
mesg_send(id, mesgptr)
int id; /* really an msqid from msgget() */
Mesg *mesgptr;
{
/*
* Send the message - the type followed by the optional data.
*/
if (msgsnd(id, (char *) &(mesgptr->mesg_type),
mesgptr->mesg_len, 0) != 0)
err_sys("msgsnd error");
}
/*
* Receive a message from a System V message queue.
* The caller must fill in the mesg_type field with the desired type.
* Return the number of bytes in the data portion of the message.
* A 0-length data message implies end-of-file.
*/
int
mesg_recv(id, mesgptr)
int id; /* really an msqid from msgget() */
Mesg *mesgptr;
{
int n;
/*
* Read the first message on the queue of the specified type.
*/
n = msgrcv(id, (char *) &(mesgptr->mesg_type), MAXMESGDATA,
mesgptr->mesg_type, 0);
if ( (mesgptr->mesg_len = n) < 0)
err_dump("msgrcv error");
return(n); /* n will be 0 at end of file */
}